/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controle;

import Modelo.Gramatica;
import Modelo.Tokens;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;

/**
 *
 * @author heitor.faccioni
 */
public class Lexico {

    public static LinkedList<Tokens> saidalex = new LinkedList<Tokens>();
    public static HashMap tabela = new HashMap();

    /**
     * Função que retorna uma string que contém, de forma legível, as informações geradas do lexico.
     * @param entrada Lista de tokens
     * @return Uma string que pode ser apresentado na tela
     */
    public static String Lexicozeia(LinkedList<Tokens> entrada) {
        Gramatica classificador = new Gramatica();
        tabela = new HashMap();
        saidalex = classificador.classifica(entrada, tabela);//identificados os tipos e setada a tabela de simbolos 
        String retorno = "";
        for(int i = 0; i < entrada.size(); i++) 
        {            
            retorno = retorno + i + " -  " + entrada.get(i).getLexema() + ("  {" + saidalex.get(i).getTipo() + "} Linha: " + saidalex.get(i).getLinha() + "\n");            
        }
        return retorno;
    }
}
